Loading of Available Games
The casino provider must make available a feed (as a simple JSON file) or an endpoint that returns a list of available games via an HTTP(S) GET request.
You provide the URL; we append GET parameters to this URL and expect a JSON response containing the game list. We call this endpoint automatically once per day to synchronize your game catalog, adding new games and removing games that are no longer present in your response.
We include an Authorization header with each request (validating this header on your side is optional).
The algorithm for generating the signature is described in the Signature (Authorization) section below.
Request
Method and URL
GET {loadGamesUrl}
{loadGamesUrl} is your base URL (e.g. https://api.provider.com/games, https://api.provider.com/games.json, https://api.provider.com/games.php?action=load_games, etc.).
Query Parameters
We add these parameters to the URL automatically:
| Parameter | Description | Mandatory | Type |
|---|---|---|---|
| ts | Current Unix timestamp | + | int |
| casinoId | Casino operator ID (if you need to identify the operator) | - | string |
Example final request URLs:
https://api.provider.com/games?ts=1709740800&casinoId=12345
https://api.provider.com/games.json?ts=1709740800
https://api.provider.com/games.php?action=load_games&ts=1709740800&casinoId=12345
Headers
| Header | Value | Description |
|---|---|---|
Authorization | signature | Request signature (see below) |
Content-Type | application/json | Content type |
Response Format
The provider must respond with a JSON array of game objects.
Game Object Schema
| Field | Description | Mandatory | Type |
|---|---|---|---|
| name | Game title | + | string |
| gameId | Casino game ID | + | string |
| platform | Supported game platforms (currently only desktop and mobile values are supported) | + | array |
| languages | Supported game languages as two-letter codes based on the ISO 639-1 standard (for example, en for English) | - | array |
| category | Game categories (see the list of allowed values below) | + | array |
| image | Game image thumbnail URL | + | string |
| hasFreespins | Free spins support for the game | - | bool |
| hasDemo | Demo (fun) mode support | - | bool |
Example Response
[
{
"name": "Golden Jack",
"gameId": "game_0121",
"platform": ["desktop", "mobile"],
"languages": ["en", "ru"],
"category": ["slots"],
"image": "https://test_domain.org/images/golden-jack.png",
"hasFreespins": true,
"hasDemo": false
},
{
"name": "Mystic Fortune",
"gameId": "game_0453",
"platform": ["desktop", "mobile"],
"languages": ["en", "de"],
"category": ["slots"],
"image": "https://test_domain.org/images/mystic-fortune.png",
"hasFreespins": false,
"hasDemo": true
},
... // more games
]
Allowed Game Categories
The category field is an array of strings. The allowed values are:
- roulette
- slots
- card
- poker
- casual
- video_poker
- lottery
- fantasy_sport
- live_dealer
- blackjack
- sports_betting
- backgammon
- arcade
- bingo
- keno
- dices
- crash
- fishing
Signature (Authorization)
- Take the query string of the final URL (everything after
?), e.g.ts=1709740800&casinoId=12345. Use the query string exactly as in the request URL; parameter order and encoding must not be changed. - Concatenate with the secret key from config:
queryString + secretKey. - Compute SHA-256 of the resulting string; output as hex (64 characters, lowercase).
- Send the result in the
Authorizationheader.
Formula:
sign = hex(SHA256(queryString + secretKey))
Authorization: <sign>
Example: for queryString = "ts=1709740800&casinoId=12345" and secretKey = "mysecret", the signature is the SHA-256 hash in hex of the string ts=1709740800&casinoId=12345mysecret.
PHP:
hash('sha256', $queryString . $secretKey)
JavaScript (Node.js):
const crypto = require('crypto');
const signature = crypto.createHash('sha256').update(queryString + secretKey).digest('hex');
Python:
import hashlib
signature = hashlib.sha256((query_string + secret_key).encode()).hexdigest()